package com.jvmoutofmemory.platform.pushutil.util;

import lombok.extern.slf4j.Slf4j;
import ognl.Ognl;

@Slf4j
public class OgnlUtil {

    /**
     * 获取属性值， 从 obj 对象， 获取属性 field 的值
     * @param obj  对象，实例， 从此对象获取值
     * @param field 属性名， 获取此属性的值
     * @return
     */
    public static Object getValue(Object obj, String field) {
        try {
            return Ognl.getValue(field, obj);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }

        return null;
    }

    /**
     * 设置属性值。  将 obj 对象的 field 属性， 设置值为 value
     * @param obj  对象，属性， 设置此对象的属性值
     * @param field 属性名， 设置此属性的值
     * @param value 值  属性的具体值
     */
    public static void setValue(Object obj, String field, Object value) {
        try {
            Ognl.setValue(field, obj, value);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
    }

}
